#include "listitembase.h"
#include <QWidget>  // 如果 ChatPage 继承自 QWidget，需要包含该头文件
#include <QPaintEvent>  // 用于处理绘画事件
#include <QStyleOption>  // 用于初始化样式选项
#include <QPainter>  // 用于绘制图形

ListItemBase::ListItemBase(QWidget *parent) : QWidget(parent)
{
}

void ListItemBase::SetItemType(ListItemType itemType)
{
    _itemType = itemType;
}

ListItemType ListItemBase::GetItemType()
{
    return _itemType;
}


// 这是ListItemBase类的paintEvent函数，当需要重绘该对象时会调用此函数
// 参数event是一个QPaintEvent指针，包含了与重绘事件相关的信息
void ListItemBase::paintEvent(QPaintEvent *event)
{
    // 创建一个QStyleOption对象opt，用于存储绘制控件所需的样式信息
    QStyleOption opt;
    // 初始化opt对象，使其包含当前控件的状态和属性信息
    opt.initFrom(this);
    // 创建一个QPainter对象p，用于在当前控件上进行绘制操作
    QPainter p(this);
    // 调用当前控件的样式对象的drawPrimitive函数，绘制一个基本的控件元素
    // 这里绘制的是QStyle::PE_Widget类型的元素，它代表一个通用的控件
    // &opt是样式选项指针，&p是绘制器指针，this是当前控件指针
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
